package com.j180.util;

import org.springframework.web.multipart.commons.CommonsMultipartFile;

import java.io.File;
import java.io.IOException;
import java.time.LocalDateTime;
import java.time.format.DateTimeFormatter;

public class UploadFileUtil {

    /**
     * 传入文件，上传文件
     * @param file 传入的文件
     * @return 返回文件的新名字
     */
    public static String newFileName(CommonsMultipartFile file){

        if (file == null){
            // 如果没有选择文件则文件名为null
            return null;
        }else {
            // 得到原始文件的名字 获取后缀
            String org_fileName = file.getOriginalFilename();
            // System.out.println(org_fileName);
            String ext = org_fileName.substring(org_fileName.lastIndexOf("."));
            // 创建新的文件名字
            String newFileName = LocalDateTime.now().format(DateTimeFormatter.ofPattern("yyyyMMddHHmmss")) + ext;
            // System.out.println(newFileName);
            return newFileName;
        }

        //  if (file.getSize() != 0 && file != null){
        //     // 得到原始文件的名字 获取后缀
        //     String org_fileName = file.getOriginalFilename();
        //     // System.out.println(org_fileName);
        //     String ext = org_fileName.substring(org_fileName.lastIndexOf("."));
        //     // 创建新的文件名字
        //     String newFileName = LocalDateTime.now().format(DateTimeFormatter.ofPattern("yyyyMMddHHmmss")) + ext;
        //     // System.out.println(newFileName);
        //     return newFileName;
        // }

    }

    /**
     * 符合controller判断条件则调用 上传方法
     * @param file
     * @param address 保存文件的路径末尾
     */
    public static void uploadFile(CommonsMultipartFile file,String address){

        if (file == null){
            System.out.println("上传的文件为空");
        }else {
            // 得到当前工程存放图片的地方
            String save_path = System.getProperty("user.dir") + "\\src\\main\\resources\\" + address;
            // System.out.println(save_path);

            File save_file = new File(save_path);
            if (!save_file.exists()) {
                save_file.mkdir();
            }

            String saveFilePath = save_path + File.separator + UploadFileUtil.newFileName(file);
            // 上传文件
            try {
                file.transferTo(new File(saveFilePath));
            } catch (IOException e) {
                e.printStackTrace();
            }
        }
    }
}